package com.ruoyi.sl.mapper;

import java.util.List;
import com.ruoyi.sl.domain.SlMonthOfc;
import com.ruoyi.sl.domain.SlLeaveRecord;
import com.ruoyi.sl.domain.SlMonthPay;
import org.apache.ibatis.annotations.Param;

/**
 * 行政固定工资Mapper接口
 * 
 * @author admin
 * @date 2024-06-14
 */
public interface SlMonthOfcMapper 
{
    /**
     * 查询行政固定工资
     * 
     * @param ofcmpayId 行政固定工资主键
     * @return 行政固定工资
     */
    public SlMonthOfc selectSlMonthOfcByOfcmpayId(Long ofcmpayId);

    /**
     * 查询行政固定工资列表
     * 
     * @param slMonthOfc 行政固定工资
     * @return 行政固定工资集合
     */
    public List<SlMonthOfc> selectSlMonthOfcList(SlMonthOfc slMonthOfc);

    /**
     * 条件查询行政工资列表
     *
     * @param slMonthOfc 行政增工资
     * @return 车间工资集合
     */
    public List<SlMonthOfc> selectSlMonthOfcListByRange(SlMonthOfc slMonthOfc);

    //根据日期姓名查询工资,返回格式转换为了计件和行政合并
    public List<SlMonthPay> selectSlMonthOfcByUserAndDate(@Param("ofcmpayYear") String ofcmpayYear,@Param("ofcmpayMonth") String ofcmpayMonth,@Param("userName") String userName);


    /**
     * 新增行政固定工资
     * 
     * @param slMonthOfc 行政固定工资
     * @return 结果
     */
    public int insertSlMonthOfc(SlMonthOfc slMonthOfc);

    /**
     * 修改行政固定工资
     * 
     * @param slMonthOfc 行政固定工资
     * @return 结果
     */
    public int updateSlMonthOfc(SlMonthOfc slMonthOfc);

    /**
     * 固定工资变为历史
     *
     * @return 结果
     */
    public int updateSlMonthOfcToHistory();

    /**
     * 删除行政固定工资
     * 
     * @param ofcmpayId 行政固定工资主键
     * @return 结果
     */
    public int deleteSlMonthOfcByOfcmpayId(Long ofcmpayId);

    /**
     * 批量删除行政固定工资
     * 
     * @param ofcmpayIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSlMonthOfcByOfcmpayIds(Long[] ofcmpayIds);

    //根据日期删除工资
    public int deleteSlMonthOfcByDate(@Param("ofcmpayYear") String ofcmpayYear, @Param("ofcmpayMonth") String ofcmpayMonth);


    /**
     * 批量删除请假记录
     * 
     * @param ofcmpayIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSlLeaveRecordByOfcmpayIds(Long[] ofcmpayIds);
    
    /**
     * 批量新增请假记录
     * 
     * @param slLeaveRecordList 请假记录列表
     * @return 结果
     */
    public int batchSlLeaveRecord(List<SlLeaveRecord> slLeaveRecordList);
    

    /**
     * 通过行政固定工资主键删除请假记录信息
     * 
     * @param ofcmpayId 行政固定工资ID
     * @return 结果
     */
    public int deleteSlLeaveRecordByOfcmpayId(Long ofcmpayId);


}
